Conventional satellite systems transmit data in standard size digital packets. As an example, one satellite network, referred to as the "digital satellite system" or "DSS" network, transmits data in 147-byte packets.
FIG. 1 shows a conventional DSS data packet 20. It has a three-byte header 22, a 127-byte payload 24, and a 17-byte trailer 26. The header 22 contains four flag bits, twelve addressing bits for the service channel identification number (SCID), four sequence bits, and four type bits. The payload 24 holds the actual data being transmitted. Trailer 26 contains forward error correction (FEC) information to help verify whether the packets are transmitted error free.
The data contained in each digital satellite packet resides in the 127-byte payload 24. One common use of DSS packets is to carry video and audio signals, such as those used in satellite-based television. Video and audio signals require continuous streaming of data at a particular rate to produce an even, uninterrupted presentation of images and sounds. To convert the continuous data stream into individual packets, the data stream is broken into equal-size blocks of 127 bytes. Each block is inserted into a payload 24 of a DSS packet 20. The individual packets are then transmitted over the satellite system to a user's residence. The data segments are extracted from the DSS packets and used to reconstruct the continuous data stream. These steps of packeting, transmitting, receiving, and reconstructing are carried out at a sufficiently high rate to enable the video/audio signals to be played in real time at the receiver's residence.
Within the networking community, data is likewise carried over data networks such as LANs (local area networks) and WANs (wide area networks) in discrete digital packets. One common and widely used type of network data is called Internet Protocol (IP) data. IP data defines a standard format for carrying data over essentially any underlying network, including the Ethernet and the Internet. The IP standard defines a packet used to encapsulate the data. The IP data is always encapsulated in this packet, regardless of the transmission network, enabling it to be carried over many different networks.
Conventional network data is typically encapsulated in packets that are much larger than 127 bytes. This presents a problem for satellite transmission because the size of a network data packet exceeds the payload size of a satellite packet, such as the 127-byte payload of DSS packet 20. Moreover, the size of the network data packet can vary dramatically. Hence, defining a formula for converting one type of packet directly to another type of packet is not particularly useful. The same problem persists for other network data formats in addition to IP and other satellite formats in addition to DSS.
It would be beneficial to provide a transport layer that enables variable-length network data packets to be carried in fixed-size satellite packet, as well as other types of network packets.
Another issue concerns use of the data after it is transmitted over the satellite network. Computer applications use standard sets of Application Programming Interfaces (APIs) to transmit and receive data over networks and over the Internet. For example, applications designed to run on Windows.RTM.-based operating systems employ a standard set of APIs that are defined in the Windows Sockets Specification, a well known specification. These APIs have been defined by industry committees and are widely in use. The Sockets APIs provide a network independent way to send and receive data, no matter what the underlying computer network (e.g., Ethernet, asynchronous transfer mode (ATM), etc.). Computer applications do not need to be specially written to receive data from a particular network. Instead, a developer writes code for an application that interfaces to the Windows.RTM. Sockets API, enabling the application to send and receive data over a number of different networks supported by the computer's hardware.
It would be beneficial to devise a technique to repackage a network data packet, such as an IP data packet, into a format for compatible transmission over a satellite or other network system without losing the identify of the IP data packet. In this manner, the network data packet can be used by the computer application through a standard set of existing APIs, rather than through proprietary or non-standard functions known only to single monolithic client applications.